import {createAlova} from "alova";
import adapterFetch from "alova/fetch";
import useStore from "@/pinia/index.ts";
import {message} from "ant-design-vue";
const alovaInstance = createAlova({
    baseURL: import.meta.env.VITE_APP_BASE_API,
    // baseURL:"http://1.95.202.9:8338/api",
    timeout: 50000,
    requestAdapter: adapterFetch(),

    beforeRequest(method) {
        const {user} = useStore();
        if(user.token){
            method.config.headers.token = user.token;
        }
    },

    responded: {

        onSuccess: async (response,) => {
            if (response.status !== 200) {
                message.error('系统错误，请稍后再试！')
                throw new Error('系统错误，请稍后再试！');
            }else{
                return await response.json();
            }
        },

        onError: (err, method) => {
            message.error('系统错误，请稍后再试！')
            throw new Error('系统错误，请稍后再试！');
        },

        // 请求完成的拦截器
        // 当你需要在请求不论是成功、失败、还是命中缓存都需要执行的逻辑时，可以在创建alova实例时指定全局的`onComplete`拦截器，例如关闭请求 loading 状态。
        // 接收当前请求的method实例
        // onComplete: async method => {
        //     // 处理请求完成逻辑
        // }
    }
});

export default alovaInstance;
